package com.seleniti.enpareja.controller.model.integration.service;

import org.ioc.commons.integration.common.RequestManager;
import org.ioc.commons.integration.service.Service;

import com.seleniti.enpareja.controller.common.domain.Page;
import com.seleniti.enpareja.controller.model.integration.database.domain.User;

public interface UserService extends Service {

	RequestManager<User> find(String userId);
	
	RequestManager<Boolean> checkIfExists(String userEmail);

	RequestManager<User> save(User user, boolean changePassword);

	RequestManager<Void> delete(User user);

	public RequestManager<Page<User>> getAllUsersPage(long start, long length, boolean excludeLoggedUser);

	public RequestManager<Page<User>> getUsersPageByEmail(String filterText, long start, long length, boolean excludeLoggedUser);

}
